[% setvar title The Perl 6 Summary for the week ending 2004-07-18 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 2004-07-18'></a><h1>The Perl 6 Summary for the week ending 2004-07-18</h1>
<p>Following last week's bizarrely dated summary (I misplaced a day) we're
back with the correct week ending date, but I'm ashamed to admit that
I've slipped to writing on a Tuesday again. My head hangs in shame and
I am filled with the direst remorse.</p>
<p>It will probably happen again though; life's like that.</p>
<a name='Pie-thon!'></a><h2>Pie-thon!</h2>
<p>Anyone would think that the possibility of not even being able to run
the Piethon benchmark (let alone getting a pie in the face for running
it too slowly) weighs heavily on Dan.</p>
<p>The bulk of the week's traffic related to getting to the point where we
can at least run all the tests.</p>
<p>Python::Bytecode, the module that parses, well, python bytecode, shot up
in version numbers; I think it reached 2.7 by the end of the week.</p>
<p>Dan released a Piethon translator, a tool that uses Python::Bytecode
translate python to parrot. So has Leo. Dan's is on his website (see
the link below, you'll find Leo's in <b><i>languages/python/pie-thon.pl</i></b>).</p>
<p><a href='http://groups.google.com/groups?threadm=40F26AD7.40000@toetsch.at' target='_blank'>groups.google.com</a> -- Parrot runs a python lambda</p>
<p><a href='http://groups.google.com/groups?threadm=a06110407bd1c65dd4c0e@' target='_blank'>groups.google.com</a>[10.0.1.3] -- Notes on pie-thon.pl</p>
<p><a href='http://groups.google.com/groups?threadm=a06110400bd1cf1d2b965@' target='_blank'>groups.google.com</a>[10.0.1.3] -- Namespaces for builtins</p>
<p><a href='http://www.sidhe.org/~dan/piethon/translator.pl' target='_blank'>www.sidhe.org</a> -- Dan's translator</p>
<a name='Semi-stack code'></a><h2>Semi-stack code</h2>
<p>In a quest for speed when emulating python's stack manipulation ops,
Dan outlined a plan for manipulating a pseudo stack using some of
Parrot's PMC register (18-29, with P31 used for overflow). Leo wasn't
convinced it was needed.</p>
<p><a href='http://groups.google.com/groups?threadm=a06110402bd1ae870b2ad@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<a name='string_to_num precision'></a><h2><code>string_to_num</code> precision</h2>
<p>Leo's got some problems with the precision of the <code>string_to_num</code>
function found in <b><i>string.c</i></b>. He doctored things to use <code>atof</code>, but
Dan's not so keen on that idea because <code>atof</code> doesn't have standard
behaviour across platforms. He recommended grabbing Perl 5's string to
num code (which he thought we'd already done). Nicholas Clark wasn't
convinced that this was a good idea; he reckoned that Perl 5's code
wasn't good enough. I think Nicholas convinced Dan that <code>atof</code> is
actually the right thing to use (with a little preprocessing to deal
with C99's <code>atof</code> being incompatible with C89's -- Parrot expects
C89 behaviour).</p>
<p><a href='http://groups.google.com/groups?threadm=40F28C82.3010904@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='GMP Licensing'></a><h2>GMP Licensing</h2>
<p>Armin Obersteiner reported his investigations into the licensing
requirements of the GMP maths library. It appears that the FSF's 'GPL
Compliance Engineer' reckons we won't need to include the GMP's source
code with binary distributions. We just have to make it available from
the same source as the distribution. Which is handy.</p>
<p><a href='http://groups.google.com/groups?threadm=20040713210952.GC2452@elch.elche' target='_blank'>groups.google.com</a></p>
<a name='Parrot configuration -- a small perl task'></a><h2>Parrot configuration -- a small perl task</h2>
<p>Leo asked for volunteers to fix up Configure.pl in order to make it
less dependent on the host Perl's configuration. Brent Royal-Gordon
provided a teeny-tiny patch that's actually shorter than Leo's
description of the problem.</p>
<p><a href='http://groups.google.com/groups?threadm=40F76AE3.4000506@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<a name='Scalar subscripting'></a><h2>Scalar subscripting</h2>
<p>Remember Guatam Gopalakrishnan's question about subscripting scalars?
Discussion continued. One Piers Cawley (who he?) suggested that it
should be possible to specify a <code>postcircumfix:[] is rw</code> method in the
String class to make string subscripting behave in a helpful
fashion. He also suggested pulling this (and other similar behaviours)
out into a Sequence trait. Juerd thought the proposed method name was a
little verbose compared to Ruby's syntax for doing the same thing and
showed off some rather pretty Ruby metaphors.</p>
<p>Another subthread discussed interpolation in strings. Larry's changed
his mind so that <code>&quot;$file.ext&quot;</code> is now interpreted as
<code>&quot;$object.method&quot;</code>. You need to do <code>&quot;${file}.ext&quot;</code> or <code>&quot;$( $file
).ext&quot;</code>. Or maybe <code>&quot;$«file».ext&quot;</code> by analogy with <code>%foo«bar»</code>. James
Mastros pointed out that <code>.</code> is rather ambiguous in a literal string;
sometimes a full stop is just a full stop.</p>
<p><a href='http://groups.google.com/groups?threadm=a3ada2d104070804124184a442@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Pushing lazy lists'></a><h2>Pushing lazy lists</h2>
<p>This thread continues to resemble the lists it is nominally discussing:
Infinitely long and possibly endless.</p>
<p><a href='http://groups.google.com/groups?threadm=200407121213.12812.philipp.marek@bmlv.gv.at' target='_blank'>groups.google.com</a></p>
<a name='Perl 6 and Parrot Essentials, 2nd Edition'></a><h2>Perl 6 and Parrot Essentials, 2nd Edition</h2>
<p>Leo pointed us at an O'Reilly press release announcing that the second
edition of <i>Perl 6 and Parrot Essentials</i> is available. Huzzah! Let
joy be unconfined.</p>
<p><a href='http://groups.google.com/groups?threadm=40F26C12.6030704@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Rules to match abbreviations'></a><h2>Rules to match abbreviations</h2>
<p>Hans Ginzel wondered wondered about adding something to the rules
system to easily match specified abbreviations of a string. Luke Palmer
came up with a (pretty ugly) solution which he then wrapped very neatly
in a rule.</p>
<p><a href='http://groups.google.com/groups?threadm=20040713071222.GC338@matfyz.cz' target='_blank'>groups.google.com</a></p>
<a name='Enhancing open'></a><h2>Enhancing <code>open</code></h2>
<p>There's a good deal of mileage to be had talking about how to improve
the <code>open</code> function it seems.</p>
<p>Larry continues to come up with new and interesting ways of designing
the language in such a way that almost every decision about how to do
something can be deferred. Speaking as someone who wishes he could just
write <code>Application.new.run</code> and then debug his way to working code,
I'm all for this kind of late binding.</p>
<p>It's also amazing how much use Larry's getting out of his colon. (The
character, obviously).</p>
<p><a href='http://groups.google.com/groups?threadm=20040713132455.GC27097@babylonia.flatirons.org' target='_blank'>groups.google.com</a></p>
<a name='Cartesian products and iterations'></a><h2>Cartesian products and iterations</h2>
<p>Michele Dondi wondered whether Perl 6 will support Cartesian products
between lists. Short answer: &quot;Yes&quot;. It's probably called <code>outer</code>.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.58.0407131513280.30821@q.pcteor1.mi.infn.it' target='_blank'>groups.google.com</a></p>
<a name='Do we really need filehandles?'></a><h2>Do we really need filehandles?</h2>
<p>Dave Whipp thought the unthinkable (but in a good way) and wondered if
we actually <i>need</i> user visible filehandles give the tools we have for
slicing and dicing strings, manipulating lazy data structures, etc. He
proposed being able to write:</p>
<pre>    my $text is TextFile(&quot;/tmp/foo.txt&quot;);
    for $text.lines -&gt; {
        ...
    }</pre>
<p>Which is rather neat isn't it? Personally I'm not sure we can get rid
of filehandles, but I do like the idea of a library that implements
something like this. Alex Shitov pointed out that there would still be
a need for methods like <code>$text.flush()</code> or <code>$text.close()</code>.</p>
<p><a href='http://groups.google.com/groups?threadm=20040718172834.89363.qmail@onion.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Announcements, Apologies, Acknowledgements'></a><h1>Announcements, Apologies, Acknowledgements</h1>
<p>Okay, so the interview was on Tuesday 13th of July. It went well; I'm
going to be a maths teacher.</p>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl. You might also like to send me feedback at
mailto:<a href='mailto:pdcawley@bofh.org.uk'>pdcawley@bofh.org.uk</a></p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
</div>
